#-*- coding: utf8 -*-
from tutor.script import *
from tutor.plugin.maple import *

# meta-informação
meta(author       = 'Fábio Mendes',
     creationdate = datetime(2010, 10, 9),
     status       = 'testing',
     difficulty   = 'easy',
     time         = 10,
     itemtype     = 'test')

# begin question: regra da cadeia
n = lambda: randint(-3, 3) or n()

phi = n() * x**n() + n() * y**n() + n() * x * y
x0, y0 = n(), n()
r0 = x0 * i_ + y0 * j_
vx0, vy0 = n(), n()
v0 = vx0 * i_ + vy0 * j_

# derivadas para a regra da cadeia
dfdx = diff(phi, x)
dfdy = diff(phi, y)
dfdx0, dfdy0 = subs(x==x0, y==y0, [dfdx, dfdy])

question(u'Uma partícula de massa $m$ se move no plano sujeita a uma energia potencial\n', 
                         '  $$\\phi(x,y) = ', phi, '.$$',
         u'Se no instante inicial a velocidade é $\\mathbf{v} = ', v0, u'$ e a \
           posição é $\\mathbf{r} = ', r0, u'$, determine a variação \
           $d\\phi/dt$ em $t=0$.')
multiplechoice()

# choice: (a)
choice_eq(1, dfdx0 * vx0 + dfdy0 * vy0)
explanation('Escolha correta!') 

# choice: (b) ?????????
choice(0.5, '$\\left(', dfdx, '\\right)\\frac{dx}{dt} + \\left(', dfdy, '\\right)\\frac{dy}{dt}$')
explanation('Não identificou o valor da posição e/ou derivada no instante inicial. \
             Segundo o enunciado, temos $x_0 = %x0%$, $y_0 = %y0%$, \
             ${v_x}_0 = %vx0%$ e ${v_y}_0 = %vy0%$.') 

# choice: (c)
choice_eq(-0.2, dfdx0 + dfdy0)
explanation('Se esqueceu de multiplicar as derivadas parciais de $\\phi$ por \
             $dx/dt = ', vx0, '$ e $dy/dt = ', vy0, '$.') 

# choice: (d)
choice_eq(-0.2, dfdx0 * x0 + dfdy0 * y0)
explanation('Se esqueceu de derivar $x$ e $y$ por $t$ na regra da cadeia.') 

if 0:
    print_question()
end()